perm filename DRUM.F4[LK,LCS]2 blob
sn#146439 filedate 1975-02-19 generic text, type T, neo UTF8
00100 C SETS UP 6 RHYTHMIC LISTS WHICH CAN BE CHOSEN AT RANDOM.
00200 C LOAD THE LIST BY USING INST. '<DUMY'. EACH LIST MUST END WITH 2 NEGS.
00300 SUBROUTINE SUBR
00400 COMMON /INS/ INST(27),BG(60)
00500 COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
00600 C INUM=INST# IPAR=PARAM#
00700 C BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
00800 C IF IREST IS <0, THAT NOTE WILL BE A REST.
00900 C INST=INST. NAME, BG=INSTS' BEGIN TIMES.
01000 C NOTE #S IN SUBROUTINE: (1-84) C4=37 FS4=43 C5=49 ETC.
01100 C F1=86 F15=100 (NO F16!)
01200 DIMENSION A(6,20)
01300 EQUIVALENCE (P2,P(2))
01500
01600 IF(INST(INUM).NE.'<DUMY')GO TO 100
01700 K=CNT(INUM)
01800 DO 40 J=1,6
01900 40 A(J,K)=P(J+2)
02000 C P3 GOES INT A(1, P4 → A(2, ETC.
02400 C STORES 6 RHYTH LISTS.
02600 RETURN
02700
02800 100 IF(CNT(INUM).EQ.1)KK=0
02900 10 IF(KK.NE.0)GO TO 20
03000 J=P2
03100 RR=RAND(.5,1.3)
03200 C RR IS SPEED FACTOR
03300 20 KK=KK+1
03400 P2=A(J,KK)*RR*RAND(.95,1.1)
03500 IF(P2.LT.0.AND.A(J,KK+1).LT.0)KK=0
03550 DF=-.5
03575 C SO NOTE WILL NEVER BE LONGER THAN .5"
03600 END